import java.util.Arrays;
import java.util.Scanner;
public class Main {
   /* 给你一个 下标从 0 开始 的整数数组 nums ，其中 nums[i] 表示第 i 名学生的分数。另给你一个整数 k 。
    从数组中选出任意 k 名学生的分数，使这 k 个分数间 最高分 和 最低分 的 差值 达到 最小化 。
    返回可能的 最小差值 。*/
   public static int subduction(int[] arr,int k) {
       Arrays.sort(arr);
       int n=arr.length;
       int result=Integer.MAX_VALUE;
       for (int i =0;i<n-k+1;i++) {//留出最后一个窗口，防止溢出
              result=Math.min(result,arr[i+k-1]-arr[i]);
           }
       return result;
   }
    public static void main(String[] args) {
     Scanner sc = new Scanner(System.in);
     int k=sc.nextInt();
     int n = sc.nextInt();
     int[] arr = new int[n];
     for (int i = 0; i < n; i++) {
         arr[i] = sc.nextInt();
     }
     int minresult=subduction(arr,k);
     System.out.println(minresult);
     sc.close();
    }
}